(() => {

	var sessionId = '';
	var sig = 0;
	var token = '';
	var yp_check = 0;

	let ele = {};
	ele.invite_code = $('#invite-code');
	ele.mobile = $('#mobile');
	ele.get_sms_code = $('#get-sms');
	ele.sms_code = $('#sms-code');
	ele.pwd = $('#password');
	ele.pwd2 = $('#repassword');
	ele.register = $('#register');
	ele.agree = $('#agree');
	ele.close1 = $('#close1');
	ele.open1 = $('#open1');
	ele.close2 = $('#close2');
	ele.open2 = $('#open2');
	
	ele.explain = $('#explain');
	
	
	// 3、用于登录底部用户协议被软键盘顶起 解决办法
	
	 // 解决底部元素被键盘顶起问题
	 
	 let screenHeight = document.body.offsetHeight
	 // 为window绑定resize事件
	 window.onresize = function () {
	  let nowHeight = document.body.offsetHeight
	  if (nowHeight < screenHeight) {
	   // 将底部弹起的按钮隐藏(可使用给按钮添加相应类)
	   ele.explain.style.display = 'none'
	  } else {
	   // 将按钮正常显示(可使用给按钮移除相应类)
	   ele.explain.style.display = 'block'
	  }
	 }
	
	//睁眼闭眼切换密码显示效果
	// ele.close1.onclick = () => {
	// 	ele.pwd.type = 'text';
	// 	ele.open1.style.display = 'block';
	// 	ele.close1.style.display = 'none';		
	// }
	// ele.open1.onclick = () => {
	// 	ele.pwd.type = 'password';
	// 	ele.open1.style.display = 'none';
	// 	ele.close1.style.display = 'block';		
	// }
	
	// ele.close2.onclick = () => {
	// 	ele.pwd2.type = 'text';
	// 	ele.open2.style.display = 'block';
	// 	ele.close2.style.display = 'none';		
	// }
	// ele.open2.onclick = () => {
	// 	ele.pwd2.type = 'password';
	// 	ele.open2.style.display = 'none';
	// 	ele.close2.style.display = 'block';		
	// }


	ele.pwd.onkeyup = function(){
		const rule = /[\W]/g
		ele.pwd.value = ele.pwd.value.replace(rule, '')
	}
	ele.pwd2.onkeyup = function(){
		const rule = /[\W]/g
		ele.pwd2.value = ele.pwd2.value.replace(rule, '')
	}
	

	let invite = getUrlParam('c') || '';
	// 链接邀请码参数
	if (!invite) openTips('邀请码丢失');
	else ele.invite_code.value = invite;

	//获取手机验证码
	ele.get_sms_code.onclick = function getSmsCode() {
		var mobile = ele.mobile.value;
		if (!mobile) {
			openTips('手机号不能为空');
			return false;
		}
		else if (!/^1[3-9]\d{9}$/.test(mobile)) {
			openTips('手机号有误');
			return false;
		}
		else if (!yp_check) {
			openTips('请点击下面的按钮进行人工验证');
			return false;
		}
		console.log('校验通过');
		ele.get_sms_code.setAttribute('disabled', true);
		var n = 60;
		var si = setInterval(function() {
			ele.get_sms_code.innerText = n + 's';
			n--;
			if (n <= 0) {
				clearInterval(si);
				ele.get_sms_code.innerText = '获取';
				ele.get_sms_code.removeAttribute('disabled');
				ypInit();
			}
		}, 1000)
		// 请求发送手机验证码接口
		ajax({
			url: API_PATH.SMS_CODE,
			method: 'POST',
			data: {
				mobile: mobile,
				sessionId: sessionId,
				sig: sig,
				token: token
			},
			success: res => {
				if (res.code == -6) {
					openTips(res.msg);
					clearInterval(si);
					ele.get_sms_code.innerText = '获取';
					ele.get_sms_code.removeAttribute('disabled');
					ypInit();
				} else if (res.code != 1) {
					// console.log(res.code);
					// console.log(res.msg);
					openTips(res.msg);
				}
			}
		});
	}

	// 提交注册申请
	ele.register.onclick = () => {
		if (!yp_check) {
			openTips('请点击验证按钮进行验证');
			return false;
		}
		var phone = ele.mobile.value;
		var smsCode = ele.sms_code.value;
		var inviteCode = ele.invite_code.value;
		var pwd = ele.pwd.value;
		var pwd2 = ele.pwd2.value;
		let agree = ele.agree.checked;
		if (!phone) {
			openTips('手机号不能为空');
			return false;
		}
		else if (!/^1[3-9]\d{9}$/.test(phone)) {
			openTips('手机号有误');
			return false;
		}
		else if (!smsCode) {
			openTips('验证码不能为空');
			return false;
		}
		else if (!/^\d{6}$/.test(smsCode)) {
			openTips('短信验证码有误');
			return false;
		}
		else if (!inviteCode) {
			openTips('请填写邀请码');
			return false;
		}
		else if (!pwd) {
			openTips('密码不能为空');
			return false;
		}
		else if (!/\w{6,12}/.test(pwd)) {
			openTips('密码为6~12位字符');
			return false;
		}
		else if (!pwd2) {
			openTips('请确认密码');
			return false;
		}
		else if (pwd !== pwd2) {
			openTips('两次输入的密码不一致');
			return false;
		}
		else if (!agree) {
			openTips('您需要同意用户协议和隐私政策');
			return false;
		}

		var data = {
			// nickname: '',
			mobile: phone,
			vcode: smsCode,
			invite_code: inviteCode,
			// password: pwd,
			password: pwd,
			// repassword: pwd2,
			password2: pwd2,
			// sessionId,
			// token,
			// sig,
			// appKey: APPKEY
		};
		ajax({
			url: API_PATH.REGISTER,
			method: 'POST',
			data: data,
			success: res => {
				console.log(res);
				if (res.code !== 1) {
					openTips(res.msg || '未知错误');
					return false;
				} else {
					openTips('注册成功！正在为您跳转到下载页...');
					setTimeout(function() {
						location.href = 'http://img.qxgs.cc/tiantianlaishouzu/appdown/index.html';
					}, 1000);
				}
			}
		});
	}

	ypInit();
	// 初始化云片
	function ypInit() {
		if (window.ic && yp_check) {
			yp_check = 0;
			return ic.reset()
		}
		if (window.ic) {
			return yp_check = 0
		}
		// 实例化ic对象
		AWSC.use("ic", function(state, module) {
			// 初始化
			window.ic = module.init({
				// 应用类型标识。它和使用场景标识（scene字段）一起决定了智能验证的业务场景与后端对应使用的策略模型。您可以在阿里云验证码控制台的配置管理页签找到对应的appkey字段值，请务必正确填写。
				appkey: "FFFF0N0000000000A00B",
				// 使用场景标识。它和应用类型标识（appkey字段）一起决定了智能验证的业务场景与后端对应使用的策略模型。您可以在阿里云验证码控制台的配置管理页签找到对应的scene值，请务必正确填写。
				scene: "ic_register_h5",
				// 声明智能验证需要渲染的目标元素ID。
				renderTo: 'human-check',
				// 验证通过时会触发该回调参数。您可以在该回调参数中将会话ID（sessionId）、签名串（sig）、请求唯一标识（token）字段记录下来，随业务请求一同发送至您的服务端调用验签。
				success: function(data) {
					sessionId = data.sessionId
					sig = data.sig
					token = data.token
					yp_check = true
				},
				// 验证失败时触发该回调参数
				fail: function(failCode) {
					console.log(failCode)
				},
				// 验证码加载异常时触发该回调参数
				error: function(errorCode) {
					console.log(errorCode)
				}
			});
		})
	}


})();
